﻿// Gateway.Api 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。
// 
// 本项目主要遵循 MIT 许可证和 Apache 许可证（版本 2.0）进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。
// 
// 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动！任何基于本项目二次开发而产生的一切法律纠纷和责任，我们不承担任何责任！

namespace Aurora.AI.Wiki.Services.ChatApplication;

/// <summary>
/// chat application update参数
/// </summary>
public class ChatApplicationUpdateRequest : ChatApplicationAddRequest
{
    /// <summary>
    /// id
    /// </summary>
    public string Id { get; set; }

    /// <summary>
    /// 类型
    /// </summary>
    public string ChatType { get; set; }

    /// <summary>
    /// 提示词
    /// </summary>
    public string Prompt { get; set; }

    /// <summary>
    /// 对话模型
    /// </summary>
    public string ChatModel { get; set; }

    /// <summary>
    /// 温度
    /// </summary>
    public double Temperature { get; set; }

    /// <summary>
    /// 最大响应Token数量
    /// </summary>
    public int MaxResponseToken { get; set; }
    /// <summary>
    /// 引用token上限
    /// </summary>
    public int ReferenceUpperLimit { get; set; }
    /// <summary>
    /// 向量匹配相似
    /// </summary>
    public double Relevancy { get; set; }

    /// <summary>
    /// 模板
    /// </summary>
    public string Template { get; set; }

    /// <summary>
    /// 参数
    /// </summary>
    public Dictionary<string, string> Parameter { get; set; }

    /// <summary>
    /// 开场白
    /// </summary>
    public string Opener { get; set; }

    /// <summary>
    /// 未找到的回答模板
    /// 如果模板为空则使用Chat对话模型回答。
    /// </summary>
    public string NoReplyFoundTemplate { get; set; }

    /// <summary>
    /// 显示引用文件
    /// </summary>
    public bool ShowSourceFile { get; set; }

    /// <summary>
    /// 关联的知识库
    /// </summary>
    public List<string> WikiIds { get; set; }

    /// <summary>
    /// 扩展字段
    /// </summary>
    public Dictionary<string, string> Extend { get; set; } = new();

    /// <summary>
    /// function call ids
    /// </summary>
    public List<long> FunctionIds { get; set; } = new();
    
    
    /// <summary>
    /// 图片分析模型*（将图片用文字描述）
    /// </summary>
    public string ImageAnalysisModel { get; set; }
    
    
    /// <summary>
    /// 图片分析模型提示词*（将图片用文字描述）
    /// </summary>
    public string ImageAnalysisPrompt { get; set; }
    
    
    /// <summary>
    /// 启用web 搜索
    /// </summary>
    public bool EnableWebSearch { get; set; }
}